$(function () {
    layui.use('form', function () {

        $.ajax({
            url: 'http://localhost:8080/subject/selectLevelNameByDistinct',
            type: 'get',
            success: function (vo) {
                if (vo.code == 200) {
                    $.each(vo.data, function (i, s) {
                        $("#levelName").append("<option value='" + s.levelName + "'>" + s.levelName + "</option>");
                    });
                }
                layui.form.render();
            }
        });

    });
});

layui.use(['table', 'jquery', 'form', 'layer'], function () {
    //使用layui的table模块来操作表格
    let table = layui.table;
    //使用layui的jquery模块
    let $ = layui.$;
    let form = layui.form;
    let layer = layui.layer;



    //当页面加载就需要渲染表格数据
    table.render({
        elem: '#demo',   //引用表格的ID
        id: 'examPaperResultTable', //这个id是render的id，可以用于表格reload时引用
        url: 'http://localhost:8080/examPaperResult/selectByPage',  // 请求地址
        method: 'get',
        toolbar: '#searchToolBar',   //设置toolbar
        page: true,  //启用表格分页功能
        cols: [[     //表头
            { field: 'examPaperResultId', title: 'Id', sort: true},
            {
                field: 'examPaperName', title: '试卷名称',
                templet: function (res) {
                    return "《" + res.examPaperName + "》";
                }
            },
            { field: 'userName', title: '提交用户' },
            {
                field: 'levelName', title: '学级',
                templet: function (res) {
                    return res.levelName + "(" + res.subjectName + ")";
                }
            },
            {
                field: 'paperScore', title: '得分',
                templet: function (res) {
                    return res.studentScore + " / " + res.paperScore;
                }
            },
            {
                field: 'questionCount', title: '题目对错', sort: true,
                templet: function (res) {
                    return res.questionCurrent + " / " + res.questionCount;
                }
            },
            {
                field: 'doTime', title: '耗时', sort: true,
                templet: '<span>{{ dateFormat(d.doTime)}}</span>'
            },
            {
                field: 'status', title: '状态',
                templet: function (d) {
                    if (d.status == 1) {
                        return ("<div style='display:inline-block;background-color:#e7faf0;color:#13ce66;border:1px solid #d0f5e0;border-radius:4px;text-align:center;height:28px;line-height:26px;padding: 0 10px;'>完成</div>")
                    } if (d.status == 3) {
                        return ("<div style='display:inline-block;background-color:#ffeded;color:#ff4949;border:1px solid #ffdbdb;border-radius:4px;text-align:center;height:28px;line-height:26px;padding: 0 10px;'>舞弊</div>")
                    }
                }
            },
            { field: 'submitTime', title: '提交时间', sort: true },
            { fixed: 'right', title: '操作',
                templet: function (res) {
                    if (res.status == 1) {
                        return `<button class="layui-btn layui-btn-primary layui-btn-xs" lay-event="view">查看</button>`
                    } if (res.status == 3) {
                        return `<button class="layui-btn layui-btn-disabled layui-btn-xs">查看</button>`
                    }
                }
            }
        ]]

    });




    //绑定表格的toolbar事件（监听头部工具栏）
    table.on('toolbar(examPaperResultList)', function (obj) {
        //获取按钮对象lay-event属性值
        let event = obj.event;

        switch (event) {
            //在不同的case中做不同的按钮事件处理
            case 'search':
                //重载表格加载新的数据, 引用render的id
                table.reload('examPaperResultTable', {
                    method: 'get',
                    where: {
                        examPaperName: $('#examPaperName').val(),
                        userName: $('#userName').val(),
                        levelName: $('#levelName').val(),
                        subjectName: $('#subjectName').val()
                    },
                    page: {
                        curr: 1  //查询回来后默认显示在第一页
                    }
                });
                // 重新查询年级
                $.ajax({
                    url: 'http://localhost:8080/subject/selectLevelNameByDistinct',
                    type: 'get',
                    success: function (vo) {
                        if (vo.code == 200) {
                            $.each(vo.data, function (i, s) {
                                $("#levelName").append("<option value='" + s.levelName + "'>" + s.levelName + "</option>");
                            });
                        }
                        layui.form.render();
                    }
                });
        }

    });

    // 监听行工具事件
    table.on('tool(examPaperResultList)', function (obj) {
        //获取按钮对象lay-event属性值
        let event = obj.event;

        switch (event) {
            case 'view':
                let examPaperResult=obj.data;
                sessionStorage.setItem("examPaperResultView2",JSON.stringify(examPaperResult));
                xadmin.open('答卷查看', 'exam_paper_result_view.html');
                break;

        }



    });



    // 年级名称下拉列表框监视
    form.on('select(levelName)', function (data) {
        //console.log(data.value); 得到被选中的值

        $("#subjectName option").each(function (i) {
            if (i != 0) {
                $(this).remove();
            }
        })
        form.render();
        if (data.value == "") {
            reture;
        }

        $.ajax({
            url: 'http://localhost:8080/subject/selectByMore',
            type: 'get',
            data: { levelName: data.value },
            success: function (vo) {
                if (vo.code == 200) {
                    $.each(vo.data, function (i, s) {
                        $("#subjectName").append("<option value='" + s.subjectName + "'>" + s.subjectName + "</option>");
                    });
                    form.render();
                }
            }
        });
    });


});

/**
 * 将秒数转换为时分秒显示
 * @param {*} result 
 * @returns 
 */
function dateFormat(result) {
    var h = Math.floor(result / 3600);
    var m = Math.floor((result / 60 % 60));
    var s = Math.floor((result % 60));
    if (h == 0) {
        result = m + "分" + s + "秒";
    } else {
        result = h + '时' + m + "分" + s + "秒"
    }
    return result;
}